#ifndef _cammand_h
#define _command_h
#include "parse.h"
#include <stdio.h>
#include <simpio.h>
#include "genlib.h"
#include "strlib.h"
#include "symtab.h"
#include "exp.h"
#include "eval.h"
#include "exception.h"

typedef void (*commandFnT)(void);

typedef struct {
	commandFnT fn;
} *commandEntryT;


symtabADT commandTable;
void InitCommandTable(void);
void DefineCommand(string cmd, commandFnT fn);
void ExecuteCommand(scannerADT scanner, string savedCommands[]);
void ListCmd(string arr[]);
void RunCmd(scannerADT scanner, string savedCommands[]);
void HelpCmd(void);
void QuitCmd(void);
void PrintCmd(scannerADT scanner);
void InputCmd(scannerADT scanner);
void LetCmd(scannerADT scanner);
int IfCmd(scannerADT scanner, int i);
int GotoCmd(scannerADT scanner);
void RemCmd(void);


#endif